import {reqGetSearchInfo} from '@/api'
//search的小仓库
//state:仓库存储数据的地方
const state = {
    searchList:{}
};
//mutations: 修改state的唯一手段
const mutations = {
    GETSEARCHLIST(state,searchList){
        state.searchList = searchList
    }
};
//action:处理action,可以书写自己的业务逻辑，也可以处理异步
const actions = {
    //获取search模块数据
   async getSearchList({commit},params={}){
    //当前接口给服务器传递参数params，[至少是一个空对象]   reqGetSearchInfo({})
    //params形参： 是当用户派发action的时候，第二个参数传递过来的，至少是一个空对象 
        let result = await reqGetSearchInfo(params)
        if(result.code == 200){
            commit("GETSEARCHLIST",result.data)
        }
    }
};
//getters: 理解为计算属性,用于简化仓库数据，让组件获取仓库的数据更加方便
//项目当中getters作用是简化仓库数据
const getters = {
    //当前形参state是当前仓库的state，并非大仓库的state
    goodsList(state){
        //state.searchList.goodsList如果服务器数据回来了，没问题是一个数值
        //如果网络有问题|没有网，state.searchList.goodsList应该返回的是undefined
        //计算新的属性的属性值至少给人家一个数组。
        return state.searchList.goodsList ||[];
    },
    trademarkList(state){
        return state.searchList.trademarkList
    },
    attrsList(state){
        return state.searchList.attrsList
    }
};


//对外暴露一个实例
export default {
    state,
    mutations,
    actions,
    getters
}